The state of the art is believed to be represented by the following documents:    Published United. States Patent Application 20070168625 entitled “Interleaving policies for flash memory”,    U.S. Pat. No. 6,996,004 entitled “Minimization of FG-FG coupling in flash memory”,    “Construction of Rate (n−1)/n Punctured Convolutional Code with Minimum Required SNR Criterion”, Pil J. Lee, IEEE Trans. On Comm. Vol. 36, No. 10, October 1988    Ron M. Roth, Introduction to Coding Theory, Cambridge University Press, 2006    Paulo Cappelletti et al, Flash Memories, Kluwer Academic Publishers, 1999    G. Campardo et al, CLSI-Design of Non-Volatile Memories, pp. 4-6, ISBN 3-540-20198-x. Springer-Verlag, Berlin, 2005.    Todd K. Moon, Error Correction Coding: Mathematical Methods and Algorithms, John Wiley & Sons, 2005, particularly page 106.
Wikipedia states that “In coding theory, puncturing is the process of removing some of the parity bits after encoding with an error-correction code. This has the same effect as encoding with an error-correction code with a higher rate, or less redundancy. However, with puncturing the same decoder can be used regardless of how many bits have been punctured, thus puncturing considerably increases the flexibility of the system without significantly increasing its complexity. In some cases, a pre-defined pattern of puncturing is used in an encoder. Then, the inverse operation, known as depuncturing, is implemented by the decoder.” The disclosures of all publications and patent documents mentioned in the specification, and of the publications and patent documents cited therein directly or indirectly, are hereby incorporated by reference.